Indexing method for mapping multiple segments of coded fields into a table-structure field

ABSTRACT

This invention proposes an indexing method for mapping multiple segments of coded fields into a table-structure field. This indexing method can complete resolving address mapping within a short delay, and it has a collision-free characteristic when total bit-width of variation for coded fields is the same as the bit-width of the table. This method can be used to resolve VPI/VCI mapping for the ATM technologies.

FIELD OF THE INVENTION

[0001] The invention presents a brand-new method on VPI/VCI connection identification for Asynchronous Transfer Mode (ATM) network. It can also be applied on ATM switches in collaboration with Shared Memory. The connection amount supported by each input port can be effectively adjusted via control of the index table memory at a fixed size of the shared memory.

BACKGROUND OF THE INVENTION

[0002] Every ATM connection is distinguished by VPI/VCI in ATM network. With faster and faster transmitting speed, the receivers of ATM network, limited by only 53 bytes of each cell, has to complete each VPI/VCI recognition and processing in a very short period of time. At the receiver of a network interface card, cells should be successfully transferred to the top layer; and for the input port of switch, the next output port and new VPI/VCI value should be found as soon as possible.

[0003] At the User-Network Interface (UNI), VPI and VCI takes 8 and 16 bits respectively. 12 and 16 bits are occupied at the Network-Network Interface (NNI). A total of 24 bits are used by UNI, and 28 bits are used by NNI. If the same size as the above-said total bits is directly used in the index table, 2²⁴ (UNI) or 2²⁸ (NNI) entries are needed for the Table. It means an extremely high cost in hardware, although related data can be directly indexed.

[0004] As a general, the VPI/VCI connection amount of each input port of ATM network will not exceed 2²⁴ or 2²⁸. Thus, there are usually two ways adopted by the receivers to recognize VPI/VCI connections. One is done by ASIC via the hashing method applied in computer science, the hardware used is more complicated, and the other uses Content Addressable Memory (CAM), which costs a lot in hardware. These two methods are not covered in the invention.

[0005] The primary purpose of the invention is to study the theory of the indexing function, as shown in FIG. 1, illustration of VPI/VCI indexing applied at the ATM receivers. The VPI/VCI, used as input and calculated via indexing function, produces an index value of n bits. Since the word of every data entry is W, the corresponding offset to the index table is obtained by n multiplied with W. According to the obtained offset value, adding up the base pointer for storing exact indexed data, corresponding indexed data entry can be found. Two usual and simple ways for application of the indexing function as shown in FIG. 1 are Truncation and exclusive-OR.

[0006] Before looking into the truncation and exclusive-OR methods, we have to make clear that the methods for selection VPI/VCI for switches are as follows. First, the ceiling and bottom VCI values of an ATM are set and the VPI value is determined by the users as required; second, variable Least Significant Bit (LSB) for VPI and VCI are set.

[0007] The bits taken by VPI and VCI may be adjusted via an network interface card designed for ATMs using the truncation method, and may also be applied directly to index in order to avoid obtaining the same index value through different VPI/VCI values, such a phenomenon is called collision. If an ATM, equipped with this kind of network card, both the switch and network interface card must be set to determine which bits will be used for indexing. However, the invention hereby presents a reverse compensation indexing method and thus only the setting of switches has to be done. Here we would like to show the defects of the exclusive-OR method by the example below:

[0008] The following formula is used as an indexing value for those with 0˜12 indexing bits in the exclusive-OR method:

({VPI[7:0],VCI[15:12]}⊕VCI[11:0])&(2^(TAB) ^(_(—)) ^(SIZE)−1)

[0009] which ⊕ represents the exclusive-OR of each bit, & represents the AND operation of each bit, and TAB_SIZE, an abbreviation of Table Size, represents the bit width of an index value.

[0010] To illustrate the inapplicable occasions of the exclusive-OR method, the following example is given:

[0011] If TAB_SIZE=7, the exclusive-OR indexing formula is ({VPI[7 : 0], VCI[15 : 12]} ⊕ VCI[11.0])&(2^(TAB_SIZE) − 1) = ({VPI[7 : 0], VCI[15 : 12]} ⊕ VCI[11 : 0])&(2⁷ − 1) = ({VPI[7 : 0], VCI[15 : 12]} ⊕ VCI[11 : 0])&(1111111)₂ = ({VPI[2 : 0], VCI[15 : 12]} ⊕ VCI[6 : 0])

[0012] If range used by current VPI/VCI in ATM switches are:

min(VPI)=0,max(VPI)=0,min(VCI)=0,max(VCI)=127=(1111111)₂

[0013] Then no collision of index values will occur. But as in the condition below:

min(VPI)=0, max(VPI)=1, min(VCI)=0,max(VCI)=63=(111111)₂

[0014] We could give at least one occasion that produces collisions:

(VPI/VCI)=(0/16) And the formula is:

[0015] {VPI[2:0], VCI [15:12}{circle over (+)}VCI[6:0]

[0016] =(0000000)₂ {circle over (+)}(0010000)₂

[0017] =(0010000)₂

[0018] Whether have another (VPI/VCI)=(1/0) the formula is: {VPI[2 : 0], VCI[15 : 12]} ⊕ VCI[6 : 0] = (0010000)₂ ⊕ (0000000)₂ = (0010000)₂

[0019] Apparently, at least one collision exists that both (0/16) and (1/0) index the same value.

[0020] In other words, if there is only one VPI in coordination with the above-said ATM switch without the exclusive-OR concept of the invention, it can only achieve at most the effect of “collision free” equivalent to the indexing bit width. Furthermore, if there are more than one VPI numbered in series, collisions will occur, because bit 0 of VPI (VPI[0]) are exclusive with variable bits of VCI (e.g. VCI[4] as said in the above example). Therefore, selection of suitable VPI number group can avoid occurrence of collisions, but the load of switch settings is increasing accordingly. This method of VPI number selection fits to the ATM switches using the first setting method said above, but for those using the second method, via setting of some lower Least Significant Bit (LSB), they are apparently not applicable with network interface cards with exclusive-OR functions.

[0021] To improve current ATM network's operating conditions, especially on prevention of collisions, an indexing method that corresponds the multi-sectional encoding structures to a single indexing table is proven in the next section of the invention. This indexing method can also be applied to the reverse compensation indexing method for VPI/VCI of multi-sectional encoding structures in ATM networks. We will illustrate the way that this flexible reverse compensation indexing Method improves present conditions. Here in below, max stands for maximum meaning a ceiling limit or the maximum value, and min stands for minimum meaning a bottom limit or the minimum value. The remarkable feature of the Reverse Compensation Indexing Method is that if min(VPI)=0 and min(VCI)=0 and a same circuit can be used in:

max(VPI)=2^(k) _(⁰) −1

k ₀=0, 1, . . . ,n

max(VCI)=2^(n−k) ^(₀) −1′

[0022] up to (n+1) occasions, all of which have the effect of “collision free.” As shown in FIG. 1, it illustrates an executable VPI/VCI indexing method for ATM input terminals. The whole indexing method can be divided into three stages: operation of index values, production of addresses, and accessing of memory. If the time for operation of index values made as t_(i), time for production of addresses as t_(a), and time for accessing of memory is t_(m), then the circuit for the Reverse Compensation Indexing Method applied in the entire indexing system can support a speed of processing 1/(t_(i)+t_(a)+t_(m)) ATM cells per second. If the time of exclusive-OR gate delay is t_(x)(by second), then t_(i)=t_(x).

SUMMARY OF THE INVENTION

[0023] The primary purpose of the invention is to disclose the conception and implementation of a multi-sectional encoding structure corresponding to a single index table. This type of indexing can be completed after a short delay, and there will be no collisions if total bits used when changes occur in the encoding structure are equivalent to the bit width of the index table.

[0024] The second purpose of the invention is to disclose the reverse compensation indexing method is that min(VPI)=0 and min(VCI)=0 and a same circuit can be used in:

max(VPI)=2^(k) ^(₀) −1

k ₀=0, 1, . . . ,n

max(VCI)=2 ^(n−k) ^(₀) −1′

[0025] up to (n+1) occasions, all of which have the benefit of “collision free.”

[0026] In addition, the invention also discloses a method of correspondence of the multi-sectional encoding structure to the single index table. Especially the latter can more effectively adjust the connection amount of every input port when the size of the shared memory is fixed.

[0027] While the invention is susceptible to various modifications and alternative forms, certain illustrative embodiments thereof have been shown by way of example in the drawing and will herein be described in detail.

BRIEF DESCRIPTION OF THE DRAWINGS

[0028] The invention will now be described by way of example with reference to the accompanying figures in which:

[0029]FIG. 1 illustration of VPI/VCI indexing applied at the ATM receivers.

[0030]FIG. 2 illustrates the circuit

[0031]FIG. 3 shows the usage of 8 binary exclusive-OR gate circuits.

[0032]FIG. 4 illustrates the TBWA circuit

[0033]FIG. 5 shows index circuit of the switch with r (from 0 to r−1) input ports.

[0034]FIG. 6 shows the architecture of the switch with shared index memory.

REFERENCE NUMBER OF THE ATTACHED DRAWINGS

[0035]101 . . . input

[0036]102 . . . indexing function

[0037]103 . . . n bits index value

[0038]104 . . . base pointer

[0039]201 . . . n bits subtractor

[0040]202 . . . minuend

[0041]203 . . . subtrahend

[0042]204 . . . difference

[0043]401 . . . TBW bits indexing value

[0044]402 . . . Table Bit Width (TBW)

DETAILED DESCRIPTION OF THE INVENTION

[0045] The invention is to make a theoretical exploration on correspondence of the multi-sectional encoding structure to a single index table, and to prove the features of the indexing method stated in the invention. Besides, the Invention also studies the two-sectional encoding structure for VPI/VCI, resulting in the application flexibility of the reverse compensation indexing method. Examples of this indexing method applied in the receiving units of Asynchronous Transfer Mode (ATM) network equipment, like network interface cards, switches, etc., are given below.

[0046] If there is an m sectional encoding structure comprised of $\begin{matrix} \varpi_{\prime\prime\prime} \\ {A_{i},} \end{matrix}$

[0047] i=0, 1, . . . , m−1. Each $\begin{matrix} \varpi_{\prime\prime\prime} \\ A_{i} \end{matrix}$

[0048] has at most 2^(k) ^(₁) varieties, $\begin{matrix} \varpi_{\prime\prime\prime} \\ A_{i} \end{matrix}$

[0049] can be transferred into $\begin{matrix} \varpi_{''} \\ {A_{i}.} \end{matrix}$

[0050] Upon transference, $\begin{matrix} \varpi_{''} \\ A_{i} \end{matrix}$

[0051] will have k₁ bits varied, and thus ${\sum\limits_{i = 0}^{m - 1}\quad k_{i}} = {n.}$

[0052] n stands for the index bit width of the indexing method. k₁ affects the value of the total n. The value of k₁ varies with proficiency of transfer skills.

[0053] There are lots of ways to transfer $\begin{matrix} \varpi_{\prime\prime\prime} \\ A_{i} \end{matrix}$

[0054] into $\begin{matrix} \varpi_{''} \\ {A_{i}.} \end{matrix}$

[0055] Here in the invention, two ways are presented for use, individual or mixed as required. The purpose of both methods is to minimize k₁, and thus decrease the index width n $\left( {{\sum\limits_{i = 0}^{m - 1}k_{i}} = n} \right).$

[0056] For the first method, observe each $\overset{\varpi_{n}}{A_{i}},$

[0057] if the variable bits are not at the right side, adjust them.

[0058] The second method is fit to the following conditions: If the values of the encoding structure are min ${{\min \left( \overset{\varpi_{m}}{A_{i}} \right)} \leq \overset{\varpi_{m}}{A_{i}} \leq {\max \quad \left( \overset{\varpi_{m}}{A_{i}} \right)}},$

[0059] k₁ then satisfy the formula:

[0060] $2^{k_{i} - 1} < \left( {{\max \quad \left( \overset{\varpi_{n}}{A_{i}} \right)} - {\min \left( \overset{\varpi_{m}}{A_{i}} \right)} + 1} \right) \leq 2^{k_{i}}$

[0061] Add or subtract a certain value to or from the encoding structure value, $\overset{\varpi_{m}}{A_{i}},$

[0062] converting it into whose k₁ bits are transferable. A particular value for subtraction is ${\min \left( \overset{\varpi_{m}}{A_{i}} \right)}.$

[0063] $\overset{\varpi_{n}}{A_{i}}$

[0064] operates with (2^(n)−1) by AND bit by bit, can be adjusted into $\overset{\varpi_{n}}{A_{i}}$

[0065] of n bit width.

[0066] Here upper-case letters stand for bits of fixed value, and lower-case letters for variable bits. If $\overset{\varpi_{n}}{A_{i}}$

[0067] is transferred into ${\overset{\varpi}{A_{0}} \oplus \overset{\varpi}{A_{1}} \oplus \quad \ldots \quad \oplus {\overset{\varpi}{A}}_{m - 1}},$

[0068] then bits of ${\overset{\varpi}{A}}_{i},$

[0069] from ${n - {\left( {{\sum\limits_{j = 0}^{i - 1}\quad k_{j}} + 1} \right)\quad {to}\quad n} - {\sum\limits_{j = 0}^{i}\quad k_{j}}},$

[0070] will become variable ones. $\left( {{\sum\limits_{j = 0}^{- 1}\quad k_{j}} = {0\quad {is}\quad {assumed}\quad {for}\quad {{short}.}}} \right)$

[0071] 0 is assumed for short.) ${\overset{\varpi}{A_{0}} \oplus \overset{\varpi}{A_{1}} \oplus \quad \ldots \quad \oplus {\overset{\varpi}{A}}_{m - 1}} = \begin{matrix} \left( {A_{m - 1_{n - 1}},A_{m - 1_{n - 2}},{\ldots \quad A_{m - 1_{n - k_{0}}}},A_{0_{n - k_{0 - 1}}},A_{0_{n - k_{0 - 2}}},\ldots \quad,A_{{0n} - {({\sum\limits_{i = 0}^{m - 2}k_{0}})}},A_{0_{n - {({\sum\limits_{i = 0}^{m - 2}k_{1}})}}},A_{{0n} - {({\sum\limits_{i = 0}^{m - 2}k_{i}})} - 2},\ldots \quad,A_{0_{0}}} \right) \\  \oplus \\ \left( {A_{1_{n - 1}},A_{1_{n - 2}},{\ldots \quad A_{1_{n - k_{0}}}},A_{m - 1_{n - k_{0} - 1}},A_{m - 1_{n - k_{0} - 2}},\ldots \quad,A_{m - {1n} - {({\sum\limits_{i = 0}^{m - 2}k_{i}})}},A_{{1n} - {({\sum\limits_{i = 0}^{m - 2}k_{i}})} - 1},A_{{1n} - {({\sum\limits_{i = 0}^{m - 2}k_{i}})} - 2},\ldots \quad,A_{1_{0}}} \right) \\  \oplus \\ \vdots \\  \oplus \\ \left( {a_{0_{n - 1}},a_{0_{n - 2}},\ldots \quad,a_{0_{n - k_{0}}},a_{1_{n - k_{0} - 1}},a_{1_{n - k_{0} - 2}},\ldots \quad,a_{1_{n - k_{0} - k_{1}}},\ldots \quad,a_{m - 2_{n - {({\sum\limits_{i = 0}^{m - 2}k_{i}})}}},a_{m - 1_{n - {({\sum\limits_{i = 0}^{m - 2}k_{0}})} - 1}},a_{m - 1_{n} - {({\sum\limits_{i = 0}^{m - 2}k_{0}})} - 2},\ldots \quad,a_{m - 1_{0}}} \right) \end{matrix}$

[0072] To make clear, all the variable bits in the above formula are adjusted to the bottom via the exchange law. (This step is make just to identify the property of “collision free,” and need not be done while in implementation.) $\begin{matrix} \left( {A_{m - 1_{n - 1}},A_{m - 1_{n - 2}},{\ldots \quad A_{m - 1_{n - k_{0}}}},A_{0_{n - k_{0 - 1}}},A_{0_{n - k_{0 - 2}}},\ldots \quad,A_{{0n} - {({\sum\limits_{i = 0}^{m - 2}k_{0}})}},A_{0_{n - {({\sum\limits_{i = 0}^{m - 2}k_{1}})}}},A_{{0n} - {({\sum\limits_{i = 0}^{m - 2}k_{i}})} - 2},\ldots \quad,A_{0_{0}}} \right) \\  \oplus \\ \left( {A_{1_{n - 1}},A_{1_{n - 2}},{\ldots \quad A_{1_{n - k_{0}}}},A_{m - 1_{n - k_{0} - 1}},A_{m - 1_{n - k_{0} - 2}},\ldots \quad,A_{m - {1n} - {({\sum\limits_{i = 0}^{m - 2}k_{i}})}},A_{{1n} - {({\sum\limits_{i = 0}^{m - 2}k_{i}})} - 1},A_{{1n} - {({\sum\limits_{i = 0}^{m - 2}k_{i}})} - 2},\ldots \quad,A_{1_{0}}} \right) \\  \oplus \\ \vdots \\  \oplus \\ \left( {a_{0_{n - 1}},a_{0_{n - 2}},\ldots \quad,a_{0_{n - k_{0}}},a_{1_{n - k_{0} - 1}},a_{1_{n - k_{0} - 2}},\ldots \quad,a_{1_{n - k_{0} - k_{1}}},\ldots \quad,a_{m - 2_{n - {({\sum\limits_{i = 0}^{m - 2}k_{i}})}}},a_{m - 1_{n - {({\sum\limits_{i = 0}^{m - 2}k_{0}})} - 1}},a_{m - 1_{n} - {({\sum\limits_{i = 0}^{m - 2}k_{0}})} - 2},\ldots \quad,a_{m - 1_{0}}} \right) \end{matrix}$

[0073] From the formula stated above, there is at least one different variable bit existing when two sections of bits are input with different values. As these two sections of bits are operated with m−1 fixed bits by exclusive-OR, the output value will have at least one bit different, compared between the two sections. Thus, it is asserted that input of different values, processed through the indexing method will produce different output, resulting with the required “collision free” effect.

[0074] Since the multi-sectional encoding indexing method can be applied to the two-sectional encoding VPI/VCI indexing method, a new reverse compensation indexing method, having the same “collision free” property as stated above, is developed to meet the application requirements, most convenient for the VPI/VCI regulated by the set parameters of minimum (VPI), maximum (VPI), minimum (VCI), and maximum (VCI). Here the method is presented as follows:

[0075] If there is a two-sectional encoding structure in $\overset{\varpi}{A_{i}},{i = 0},1,$

[0076] the value of each encoding structure ${{\min \left( {\overset{\varpi_{'''}}{A}}_{i} \right)} \leq {\overset{\varpi_{'''}}{A}}_{i} \leq {\max \left( {\overset{\varpi_{'''}}{A}}_{i} \right)}},k_{i}$

[0077] then satisfy the formula:

[0078] $2^{k_{i} - 1} < \left( {{\max \left( {\overset{\varpi_{''}}{A}}_{i} \right)} - {\min \left( {\overset{\varpi_{'''}}{A}}_{i} \right)} + 1} \right) \leq 2^{k_{i}}$

[0079] When each ${\overset{\varpi_{'''}}{A}}_{i},$

[0080] added or subtracted with a certain value, is transferred, between which ${\overset{\varpi_{''}}{A}}_{0}$

[0081] has k₀ variable bits and ${\overset{\varpi_{''}}{A}}_{1}$

[0082] has k₁. And ${{\sum\limits_{i = 0}^{1}k_{i}} = n},$

[0083] in which n is the width of the indexing bit. $\overset{\varpi}{A_{i}},$

[0084] operated with (2^(n)−1) by AND bit by bit, is transferred into $\overset{\varpi}{A_{i}}$

[0085] of n bit width. $\overset{\rho}{A_{0}} = \left( {A_{{0n} - 1},A_{{0n} - 2},\ldots,A_{0k_{0}},a_{{0k_{0}} - 1},a_{{0k_{0}} - 2},\ldots \quad,a_{0_{0}}} \right)$ $\overset{\rho}{A_{1}} = \left( {A_{{1n} - 1},A_{{1n} - 2},\ldots,A_{1k_{1}},a_{{1k_{1}} - 1},a_{{1k_{1}} - 2},\ldots \quad,a_{1_{0}}} \right)$

[0086] Reversing the positions of $\overset{\varpi_{'}}{A_{0}},s$

[0087] bits, we obtain $\overset{\varpi}{A_{0}} = \left( {a_{0_{0}},a_{0_{1}},\ldots \quad,a_{k_{0} - 1},A_{0k_{0}},A_{{0k_{0}} + 1},\ldots \quad,A_{0_{n - 1}}} \right)$

[0088] and then operated $\overset{\varpi}{A_{1}}\left( {= \overset{\varpi_{'}}{A_{1}}} \right)$

[0089] by exclusive-OR, it turns out to be (a_(0₀), a_(0₁), …  , a_(k₀ − 1), A_(0k₀), A_(0k₀ + 1), …  , A_(0_(n − 1))) ⊕ (A_(1_(n − 1)), A_(1_(n − 2)), …  , A_(1_(k₁)), a_(1_(k₁ − 1)), a_(1_(k₁ − 2)), …  , a_(1₀))

[0090] Since exclusive-OR operator meet with the exchange law, the above formula is adjusted by the law and becomes: (This step is make just to identify the property of “collision free,” and will not be done while in implementation.) (A_(1_(n − 1)), A_(1_(n − 2)), …  , A_(1_(k₁)), A_(0_(k₀)), A_(0_(k₀ + 1)), …  , A_(0_(n − 1))) ⊕ (a_(0_(n − 1)), a_(0_(n − 2)), …  , a_(0_(k₀ − 1)), a_(1_(k₁ − 1)), a_(1_(k₁ − 2)), …  , a_(1₀))

[0091] From the above formula, ${{\sum\limits_{i = 0}^{1}\quad k_{i}} = n},$

[0092] two varied sets of input values mean that values of some bits are different. Therefore, the corresponding bit location of each output value may change. We assert that different input values, processed by the (A_(1_(n − 1)), A_(1_(n − 2)), …  , A_(1_(k₁)), A_(0_(k₀)), A_(0_(k₀ + 1)), …  , A_(0_(n − 1))) ⊕ (a_(0_(n − 1)), a_(0_(n − 2)), …  , a_(0_(k₀ − 1)), a_(1_(k₁ − 1)), a_(1_(k₁ − 2)), …  , a_(1₀))

[0093] From the above formula, ${{\sum\limits_{i = 0}^{1}\quad k_{i}} = n},$

[0094] two varied sets of input values mean that values of some bits are different. Therefore, the corresponding bit location of each output value may change. We assert that different input values, processed by the indexing method, will produce different output values, resulting with the effect of “collision free.” Because all the bits of the above ${\overset{\varpi_{'}}{A}}_{0}$

[0095] are reversed, this method is then called as the reverse compensation indexing method.

[0096] Some examples are given below to demonstrate the applications of the said indexing method in current ATM networks.

EXAMPLE 1

[0097] If the value of VPI/VCI is ${\overset{\varpi_{'''}}{A}}_{i},$

[0098] and i=0, 1, i.e. operated randomly in min(VPI), max(VPI), min(VCI), max(VCI) condition, we assume min(VPI)=7, max (VPI)=8, min(VCI)=1, max(VCI)=8 for the convenience of explanation.

[0099] Step 1

[0100] The value of k₀, k₁, and n can be found by the following norm: $\begin{matrix} {2^{k_{0 - 1}} < \quad \left( {{\max ({VPI})} - {\min ({VPI})} + 1} \right) \leq 2^{k_{0}}} \\ \left. \Rightarrow\quad {2^{k_{0 - 1}} < {\left( {8 - 7} \right) + 1} \leq 2^{k_{0}}} \right. \\ \left. \Rightarrow\quad {2^{k_{0 - 1}} < 2 \leq 2^{k_{0}}} \right. \\ {\left. \Rightarrow\quad k_{0} \right. = 1} \\ {2^{k_{1 - 1}} < \quad \left( {{\max ({VCI})} - {\min ({VCI})} + 1} \right) \leq 2^{k_{1}}} \\ \left. \Rightarrow\quad {2^{k_{1} - 1} < {\left( {8 - 1} \right) + 1} \leq 2^{k_{1}}} \right. \\ \left. \Rightarrow\quad {2^{k_{1} - 1} < 8 \leq 2^{k_{1}}} \right. \\ {\left. \Rightarrow\quad k_{1} \right. = 3} \end{matrix}$

[0101] Width of the indexing bits $n = {{\sum\limits_{i = 0}^{1}k_{i}} = {{k_{0} + k_{1}} = {{1 + 3} = 4}}}$

[0102] Step 2

[0103] Let ${\overset{\varpi_{''}}{A}}_{0} = {{{\overset{\varpi_{'''}}{A}}_{0} + {1\quad {and}\quad {\overset{\varpi_{''}}{A}}_{1}}} = {{\overset{\varpi_{'''}}{A}}_{1} - 1}}$

[0104] (applied also in the particular case presented in the above-said statement of the Multi-sectional Encoding Indexing Method), it is apparent that $\left. {{{\overset{\varpi_{''}}{A}}_{0} = {{\overset{\varpi_{'''}}{A}}_{0} - {\min \quad ({VPI})}}}\quad,{{\overset{\varpi_{''}}{A}}_{1} = {{\overset{\varpi_{'''}}{A}}_{1} - {\min ({VCI})}}}} \right).$

[0105] If $\left. {8 \leq \overset{\varpi}{A_{0}^{''}} \leq}\Rightarrow{(1000)_{2} \leq \overset{\varpi}{A_{0}^{''}} \leq (1000)_{2}} \right.$

[0106] only the right bit (i.e. the k₀ bit) of ${\overset{\varpi_{''}}{A}}_{0}$

[0107] will change.

[0108] If $\left. {0 \leq {\overset{\varpi_{''}}{A}}_{1} \leq 7}\Rightarrow{(000)_{2} \leq {\overset{\varpi_{''}}{A}}_{1} \leq (111)_{2}} \right.$

[0109] that have three right bit (i.e. the k₁ bit) of A₁^(ϖ_(″))

[0110] will change.

[0111] Step 3 ${\overset{\varpi_{''}}{A}}_{0},{\overset{\rho_{''}}{A}}_{1},$

[0112] both operated with (2^(n)−1)=(2⁴−1)=15=(1111)₂ by AND bit by bit, is transferred into 4-bit ${\overset{\rho_{'}}{A}}_{0} = \left. \left( {1,0,0,a_{0_{0}}} \right)_{2}\Rightarrow{\left( {1,0,0,0} \right)_{2} \leq {\overset{\varpi_{'}}{A}}_{0} \leq \left( {1,0,0,1} \right)_{2}} \right.$ ${\overset{\rho_{'}}{A}}_{1} = \left. \left( {0,a_{1_{2}},a_{1_{1}},a_{1_{0}}} \right)_{2}\Rightarrow{\left( {0,0,0,0} \right)_{2} \leq {\overset{\varpi_{'}}{A}}_{1} \leq \left( {0,1,1,1} \right)_{2}} \right.$

[0113] Step 4

[0114] Reversing the locations of all ${\overset{\varpi_{'}}{A}}_{0}{‘s}$

[0115] bits, we obtain ${\overset{\varpi}{A}}_{0} = \left( {a_{0_{0}},0,0,1} \right)_{2}$

[0116] and then operated with A₁^(ϖ)( = A₁^(ϖ_(′)))

[0117] by the exclusive-OR, it turns out to be (a_(0₀), 0, 0, 1)₂ ⊕ (0, a_(1₂), a_(1₁), a_(1₀))₂

[0118] Adjusted by the exchange law, the above formula becomes: (0, 0, 0, 1)₂ ⊕ (a_(0₀), a_(1₂), a_(1₁), a_(1₀))₂

[0119] From the above formula, we observe that the “collision free” effect of the index values is achieved. The circuit shown in FIG. 2 is for reference. If the delay time of the n-bit subtractor is t_(s), and the exclusive or gate delay is t_(x) (by second), then this indexing circuit, in coordination with the entire indexing method, is able to support the speed necessary for 1/(t_(i)+t_(a)+t_(m))=1/(t_(s)+t_(x)+t_(a)+t_(m)) ATM cells, in which t_(i) is the time for operating index values, t_(a) for producing addresses, and t_(m) for accessing the memory.

EXAMPLE 2

[0120] If the VPI/VCI value is ${\overset{\varpi_{'''}}{A}}_{i},$

[0121] when i=0, 1, i.e., k₁ bits of ${\overset{\varpi_{''}}{A}}_{i}$

[0122] will change and ${{\sum\limits_{i = 0}^{1}\quad k_{i}} = n},$

[0123] for example min(VPI)=8, max(VPI)=9, min(VCI)=0 and max(VCI)=7.

[0124] Using the same indexing method as Example 1, but omitting the process of addition or subtraction of ${\overset{\varpi_{'''}}{A}}_{0},{\overset{\rho_{'''}}{A}}_{1}$

[0125] a certain value in Step 2, because lower k₀ and k₁ bits of the original ${\overset{\varpi_{''}}{A}}_{0}\quad {and}\quad {\overset{\varpi_{''}}{A}}_{1}$

[0126]7are varies, respectively. Please refer to the illustration of Example 1 for details.

EXAMPLE 3

[0127] This example is a special case of Example 2. It is used here to explain the outstanding property of the revere compensation indexing method in some occasions:

[0128] Question: Normally VPI and VCI will start from zero; therefore, we will check if there is any circuit that can meet with all the needs of the following occasions: min(VPI)=0, max(VPI)=(2^(k) ^(₀) −1), min(VCI)=0, max(VCI)=(2^(k) ^(₁) −1), where ${{\sum\limits_{i = 0}^{1}\quad k_{i}} = n},$

[0129] in which n is the width of the indexing bit.

[0130] If we reverse the bit locations of ${\overset{\varpi_{'}}{A}}_{0}\quad$

[0131] (i.e. VPI), then we can obtain ${\overset{\varpi}{A}}_{0} = {\left( {a_{0_{0}}\quad,a_{0_{1}}\quad,\ldots \quad,a_{0_{{k\quad 0} - 1}}\quad,0,0,\ldots \quad,0} \right).}$

[0132] And operated with ${\overset{\varpi}{A}}_{1}\left( {= {\overset{\varpi_{'}}{A}}_{1}} \right)$

[0133] (i.e. VCI) by exclusive-OR, it turns out to be (a_(0₀), a_(0₁), …  , a_(0_(k₀ − 1)), 0, 0, …  , 0) ⊕ (0, 0, …  , 0, a_(1_(k₁ − 1)), a_(1_(k₁ − 2)), …  , a_(1₀))

[0134] From the above formula, it is apparent that “collision free” effect of index values can be achieved because all variable bits operate with 0 by exclusive-OR.

[0135] To put it this way, the outstanding property of the reverse compensation indexing method to be illustrated in Example 3 is: if min(VPI)=0 and min(VCI)=0, then the same circuit can be applied in

max(VPI)=2^(k) ^(₀) −1

k ₀=0, 1, . . . , n

max(VCI)=2^(n−k) ^(₀) −1′

[0136] up to (n+1) occasions, all of which have the effect of “collision free.”

[0137] Here a simple example is given as shown in FIG. 3. If n=8, i.e. the circuit shown in FIG. 3 uses 8 exclusives-OR gates of binary input, then there are up to nine conditions that all have “collision free” effect:

[0138] In the first condition, max(VPI)=0, max(VCI)=255

[0139] In the second condition, max(VPI)=1, max(VCI)=127.

[0140] In the third condition, max(VPI)=3, max(VCI)=63.

[0141] In the fourth condition, max(VPI)=7, max(VCI)=31.

[0142] In the fifth condition, max(VPI)=15, max(VCI)=15.

[0143] In the sixth condition, max(VPI)=31, max(VCI)=7.

[0144] In the seventh condition, max(VPI)=63, max(VCI)=3.

[0145] In the eighth condition, max(VPI)=127, max(VCI)=1.

[0146] In the ninth condition, max(VPI)=255, max(VCI)=0.

[0147] The reference circuit as shown in FIG. 3 can be applied both in example 2 and 3, and can complete the operation of indexing in an exclusive-OR gate delay time. If operated in the entire indexing system, the circuit of the Reverse Compensation Indexing Method can support up to 1/(t_(i)+t_(a)+t_(m)) of ATM cells in a second if the delay of exclusive-OR gate is t_(x) (by second), then t_(i)=t_(x), among t_(i) which is the time for operation of index values, t_(a) is the time for production of addresses, and t_(m) is the time of memory accessing.

[0148] The receiving unit of the ATM can support different VPI/VCI connection amounts by relatively adding or subtracting the indexing table memory equipped in the said unit, in coordination with the Table Bit Width Adjuster (TBWA) circuit as shown in FIG. 4. The input EXCLUSIVE-OR configuration of VPI and VCI may be changed according to the bit width of the indexing table memory. For instance, if TBW=3, then the EXCLUSIVE-OR configuration of VPI[0], VIP[1] and VPI[2] will operate with VCI[2], VCI[1] and VPI[0] respectively by exclusive-OR. If TBW=4, then the EXCLUSIVE-OR configuration of VPI[0], VPI[1], VPI[2] and VPI[3] must respectively operate with VCI[3], VCI[2], VCI[1] and VCI[0] by exclusive-OR.

[0149] Then we will study how to apply this indexing method in the input port of an ATM switch in order to find the next output ports and new VPI/VCI values. An ATM switch has two or more input ports, on which the circuit as shown in FIG. 4 can be applied. The following circuit as shown in FIG. 5 is an indexing circuit for the switch of input r ports (numbered from 0 to r−1). And the base pointer of the indexing table of each input port is BP₁, i=0, 1, . . . , r−1. BP is abbreviated of the base pointer. However, since each port uses its own indexing table as shown in FIG. 5, other ports cannot flexibly support it if its connection amount exceeds the original setting for the Indexing Table Memory after the whole system is completely configured, though other ports still have empty indexing table memory. To solve this problem, we present a structure shown in FIG. 6.

[0150] At the right side of the FIG. 6, the indexing table memory has e entries, numbered from Entry 0, Entry 1, . . . to Entry e−1. ${{\sum\limits_{i = 0}^{r - 1}\quad 2^{{TBW}_{i}}} = e},$

[0151] the base pointer of the 0 input unit is BP₀, and those of the base pointer for other r−1 input ports is figured out by the TBW and BP of the previous input unit. Its formula is BP₁=BP¹⁻¹+W*2^(TBW) ^(¹⁻¹) , i=1, . . . , r−1. The purpose of calculating every BP is to orderly and compatibly allocate every section of the indexing table memory used by different input ports. Such kind of the shared memory structure can more effectively adjust the connection amount of every input port with limited indexing table memory.

[0152] After all this study, we can easily infer the way to apply the reverse compensation indexing method in multi-sectional encoding structures, making this kind of structures more flexible in use. All sections of a multi-sectional encoding structure are divided into sets of two sections and every set is regarded as a basic unit for implementing the reverse compensation indexing method. Therefore, this kind of multi-sectional encoding structure may have the same flexibility necessary for application of the reverse compensation indexing method.

[0153] To sum up, you can see the invention is of creativity, innovation and progressiveness. Although we have presented some better examples as shown above, the applications of the Invention are not limited to those examples. Anyone who is familiar with such kind of techniques is able to design corresponding circuits with the multi-sectional encoding indexing method and the reverse compensation indexing method with some changes or amendments without deviating the spirit and coverage of the invention. Thus, the patent protection of the Invention should be executed as per the Coverage of Applied Patents attached below. 

What is claimed is
 1. A method of implementing the multi-sectional encoding indexing method, whether covering: Step 1: An m sectional encoding structure which is comprised of ${\overset{\varpi_{'''}}{A}}_{i},$

i=0, 1, . . . , m−1, each A_(i)^(ϖ_(‴))

has at most 2^(k) ^(₁) varieties. Step 2: A_(i)^(ϖ_(‴))

can be transferred into A_(i)^(ϖ_(″)).

Upon transference, A_(i)^(ϖ_(″))

will have k₁ bits varied, and thus ${\sum\limits_{i = 0}^{m - 1}\quad k_{i}} = {n.}$

n stands for the index bit width of the Indexing Method. Step 3: A_(i)^(ϖ_(″))

operated with (2^(n)−1) by AND bit by bit, can be transferred to A_(i)^(ϖ_(′))

of n bit width. Step 4: If A_(i)^(ϖ_(′))

is transferred into ${{\overset{\varpi}{A}}_{0} \oplus {\overset{\varpi}{A}}_{1} \oplus \quad \ldots \quad \oplus {\overset{\varpi}{A}}_{m - 1}},$

then bits of ${{\sum\limits_{i = 0}^{1}k_{i}} = n},$

from ${n - {\left( {{\sum\limits_{j = 0}^{i - 1}\quad k_{j}} + 1} \right)\quad {to}\quad n} - {\sum\limits_{j = 0}^{i}\quad k_{j}}},$

will become variable ones. $\left( {{\sum\limits_{j = 0}^{- 1}\quad k_{j}} = 0} \right.$

is assumed for short.) ${\overset{\varpi}{A}}_{0} \oplus {\overset{\varpi}{A}}_{1} \oplus \quad \ldots \quad \oplus {\overset{\varpi}{A}}_{m - 1}$

has a feature that different output values can be produced as long as the values input vary, i.e. having the effect of “collision free.”
 2. The method of implementing the multi-sectional encoding indexing method, according to the claim 1, two methods are presented and can be applied single or mingled as step 2 required. The purpose of both methods is to minimize the k, every with a view to shortening the index n bit width, in which, ${\sum\limits_{i = 0}^{m - 1}\quad k_{i}} = n$


3. The method of implementing the multi-sectional encoding indexing method, according to the claim 1, the first method is to observe each ${\overset{\varpi_{'''}}{A}}_{i},$

if the variable bits are not at the right side, adjust them.
 4. The method of implementing the multi-sectional encoding indexing method, according to the claim 1, the second method can be applied under the following conditions: ${{\min \left( {\overset{\varpi_{'''}}{A}}_{i} \right)} \leq {\overset{\varpi_{'''}}{A}}_{i} \leq {\max \left( {\overset{\varpi_{'''}}{A}}_{i} \right)}},k_{i}$

then satisfy the formula: ${2^{k_{i} - 1} < \left( {{\max \left( {\overset{\varpi_{'''}}{A}}_{i} \right)} - {\min \left( {\overset{\varpi_{'''}}{A}}_{i} \right)} + 1} \right) \leq 2^{k_{i}}},$

add or subtract a certain value to or from the encoding structure value, ${\overset{\varpi_{'''}}{A}}_{i},$

converting it into whose k₁ bits are variable. A particular value for subtraction is ${\min \left( {\overset{\varpi_{'''}}{A}}_{i} \right)}.$


5. An implementation method of the reverse compensation indexing method, whether covering: Step 1: The two-sectional encoding structure is comprised of ${{{\overset{\varpi_{'''}}{A}}_{i}\quad i} = 0},1,$

and the value of each encoding structure is ${{\min \left( {\overset{\varpi_{'''}}{A}}_{i} \right)} \leq {\overset{\varpi_{'''}}{A}}_{i} \leq {\max \left( {\overset{\varpi_{'''}}{A}}_{i} \right)}}:$

k₁ in which satisfy the following formula: $2^{k_{i} - 1} < \left( {{\max \left( {\overset{\varpi_{'''}}{A}}_{i} \right)} - {\min \left( {\overset{\varpi_{'''}}{A}}_{i} \right)} + 1} \right) \leq 2^{k_{i}}$

Step 2: After adding or subtracting a certain value to or from ${\overset{\varpi_{'''}}{A}}_{i},k_{0}$

bits of ${\overset{\varpi_{''}}{A}}_{0}$

and k₁ bits of ${\sum\limits_{i = 0}^{r - 1}{2^{{TBW}_{i} =}e}},$

may be change, and ${{\sum\limits_{i = 0}^{1}\quad k_{i}} = n},$

in which n is the width of the index bits. Step 3: ${\overset{\varpi_{''}}{A}}_{i},$

operated with (2^(n)−1) by AND bit by bit, is transferred to ${\overset{\varpi_{'}}{A}}_{i}$

of n bits; Step 4: ${\overset{\varpi}{A}}_{0},$

obtained by reversing the bit locations of ${\overset{\varpi_{'}}{A}}_{0},$

is operated with ${\overset{\varpi}{A}}_{1}\left( {= {\overset{\varpi_{'}}{A}}_{1}} \right)$

by exclusive-OR, i.e., ${{\overset{\varpi}{A}}_{0}\quad \oplus \quad {\overset{\varpi}{A}}_{1}};$

The feature is that the output values produced by the indexing method will be different if input of different values, i.e. having the effect of “collision free.”
 6. The method of implementing the multi-sectional encoding indexing method, according to the claim 5, the outstanding property of the reverse compensation indexing method to be illustrated: if min(VPI)=0 and mm(VCI)=0, then this single circuit can be applied in max(VPI)=2^(k) ^(₀) −1 k₀=0, 1, . . . , n max(VCI)=2^(n−k) ^(₀) −1 up to (n+1) occasions, all of which have the effect of “collision free.”
 7. A method that corresponds multi-sectional encoding structures to a single indexing table is presented. The receiving unit of the ATM can support different VPI/VCI connection amounts by relatively adding or subtracting the Indexing Table Memory equipped in the said unit, in coordination with the TBWA circuit. The input exclusive-OR configuration of VPI and VCI may be changed according to the bit width of the indexing table Memory.
 8. A structure is presented that corresponds multi-sectional encoding structures to shared memories. The Indexing Table Memory of e entries, from Entry 0 to e−1, i.e. Entry 0, Entry 1, . . . to Entry e−1. ${{\sum\limits_{i = 0}^{r - 1}\quad 2^{{TBW}_{t}}} = e},$

then the base pointer of the input unit 0 is BP₀, and those of the base pointer for other r−1 input ports is figured out by the TBW and BP of the previous unit. Its formula is BP₁=BP_(i−1)+W*₂ ^(TBW) ^(_(i−1)) , i=1, . . . , r−1. The purpose of calculating every BP is to orderly and compatibly allocate every section of the indexing table memory used by different input ports. Such kind of the shared memory structure can more effectively adjust the connection amount of every input port with limited indexing table memory.
 9. An applied method of multi-sectional encoding structures whether divided into sets of two sections and every set is regarded as a basic unit for implementing the reverse compensation indexing method. Therefore, this kind of multi-sectional encoding structures may have the same flexibility necessary for application of the reverse compensation indexing method. 